package com.service.admin.member.service;


import com.baomidou.mybatisplus.extension.service.IService;
import com.service.admin.member.controller.rep.MemberPgeRep;
import com.service.admin.member.controller.rep.MemberRep;
import com.service.admin.member.controller.req.*;
import com.service.admin.team.controller.rep.TeamPageRep;
import com.service.admin.team.controller.req.IssuedTeamRewardReq;
import com.service.admin.team.controller.req.TeamPageReq;
import com.service.core.rest.response.CommonPageRep;
import com.service.core.rest.response.PageResponse;
import com.service.dao.enums.CoinsEnum;
import com.service.dao.model.Member;

import java.util.List;

/**
 * <dl>
 * <dt>back-end</dt>
 * <dd>Description:</dd>
 * <dd>Copyright: Copyright (C) 2015</dd>
 * <dd>Company: </dd>
 * <dd>CreateDate: 2019年09月22日</dd>
 * </dl>
 *
 * @author
 */
public interface MemberService extends IService<Member> {


    CommonPageRep<MemberPgeRep> pageMember(MemberPageReq userReq );

    void issuedTeamReward(IssuedTeamRewardReq req);
    /**
     * 分页查询用户团队
     * @param req
     * @return
     */
//    CommonPageRep<TeamPageRep> pageMemberTeam(TeamPageReq req);

    /**
     * 分页查询用户团队
     * @param req
     * @return
     */
    CommonPageRep<TeamPageRep> pageMemberTeamByParam(TeamPageReq req);

    List<MemberPgeRep> listMember(MemberPageReq userReq );

    void deleteMember(List<Integer> memberId);

    void lockMember(List<Integer> memberId);

    void invalidMember(List<Integer> memberId);

    void resetPwd(ResetPwdReq resetPwdReq);

    MemberRep detail(Integer memberId);

    void updateMemberGrade(ModifyMemberGradeReq gradeReq);

    void updateMemberStarGrade(ModifyMemberStarGradeReq gradeReq);

    List<Member> listByAccount(String memberAccount);

    Member getMemberByAccount(String userAccount);

    void addNewCoin2MemberAssert(CoinsEnum coins);
    /**
     * 查询直推有效会员
     * @param memberId
     * @return
     */
    List<Member> selectByPid(Integer memberId);

    /**
     * 修改冻结状态
     * @param req
     */
    void updateStoreFreezeStatus(UpdateStoreFreezeStatusReq req);
}
